﻿using System;
using System.Collections.Generic;
namespace CoreSoft.Frame.Entity
{
    /// <summary>
    /// 物料资料 
    /// 数据表:inventory
    /// </summary>
    [Serializable]
    public class Inventory
    {
        #region 构造函数
        public Inventory()
        {
        }
        #endregion

        #region 表字段
        /// <summary>
        /// 主键
        /// </summary>
        public String Id
        {
            get;
            set;
        }

        /// <summary>
        /// 存货编号
        /// </summary>
        public String CinvCode
        {
            get;
            set;
        }

        /// <summary>
        /// 存货名称
        /// </summary>
        public String CinvName
        {
            get;
            set;
        }

        /// <summary>
        /// 存货代码
        /// </summary>
        public String CinvAddCode
        {
            get;
            set;
        }

        /// <summary>
        /// 规格型号
        /// </summary>
        public String CinvStd
        {
            get;
            set;
        }

        /// <summary>
        /// 从属分类
        /// </summary>
        public String CinvCCode
        {
            get;
            set;
        }

        /// <summary>
        /// 从属分类(大类)名称
        /// 手动添加：2017-11-21-plf
        /// </summary>
        public String CinvCName
        {
            get;
            set;
        }

        /// <summary>
        /// 默认仓库
        /// </summary>
        public String DefaultWhoCode
        {
            get;
            set;
        }

        /// <summary>
        /// 销售件
        /// </summary>
        public Int32 SaleFlag
        {
            get;
            set;
        }

        /// <summary>
        /// 自制件
        /// </summary>
        public Int32 SelfFlag
        {
            get;
            set;
        }

        /// <summary>
        /// 采购件
        /// </summary>
        public Int32 PoFlag
        {
            get;
            set;
        }

        /// <summary>
        /// 委外件
        /// </summary>
        public Int32 OmFlag
        {
            get;
            set;
        }

        /// <summary>
        /// 批次管控
        /// </summary>
        public Int32 BatchFlag
        {
            get;
            set;
        }

        /// <summary>
        /// 组织ID
        /// </summary>
        public String OrgID
        {
            get;
            set;
        }

        /// <summary>
        /// 部门条码值
        /// </summary>
        public String BarCode
        {
            get;
            set;
        }

        /// <summary>
        /// 启用标识（0 停用，1 启用）
        /// </summary>
        public Int32 StartFlag
        {
            get;
            set;
        }

        /// <summary>
        /// 创建人ID
        /// </summary>
        public String CUserID
        {
            get;
            set;
        }

        /// <summary>
        /// 创建时间
        /// </summary>
        public DateTime CTime
        {
            get;
            set;
        }

        /// <summary>
        /// 修改人ID
        /// </summary>
        public String MUserID
        {
            get;
            set;
        }

        /// <summary>
        /// 修改时间
        /// </summary>
        public DateTime? MTime
        {
            get;
            set;
        }

        /// <summary>
        /// 计量单位
        /// </summary>
        public string UnitCode { get; set; }

        /// <summary>
        /// 计量单位名称-2017-11-19-plf
        /// 手动添加---传给MES使用
        /// </summary>
        public string UnitName { get; set; }

        /// <summary>
        /// 客户物料号
        /// 时间：2017-12-01-plf
        /// </summary>
        public string Group2 { get; set; }
        #endregion

        #region 自定义项
        //自由项
        public string Free1 { get; set; }
        public string Free2 { get; set; }
        public string Free3 { get; set; }
        public string Free4 { get; set; }
        public string Free5 { get; set; }
        public string Free6 { get; set; }
        public string Free7 { get; set; }
        public string Free8 { get; set; }
        public string Free9 { get; set; }
        public string Free10 { get; set; }

        //扩展自定义项
        public string Cidefine1 { get; set; }   //小分类
        public string Cidefine2 { get; set; }   //材质
        public string Cidefine3 { get; set; }   //规格
        public string Cidefine4 { get; set; }   //客户料号
        public string MaterialType { get; set; }   //mes存货分类
                                              
        //add by fulj 20210928
        public string Cidefine11 {get;set;} //成本核算要求增加产品类别
        //自定义项
        public string CInvDefine1 { get; set; }
        public string CInvDefine2 { get; set; }
        public string CInvDefine3 { get; set; }
        public string CInvDefine4 { get; set; }
        public string CInvDefine5 { get; set; }
        public string CInvDefine6 { get; set; }
        public string CInvDefine7 { get; set; }
        public string CInvDefine8 { get; set; }
        public string CInvDefine9 { get; set; }
        public string CInvDefine10 { get; set; }
        public int CInvDefine11 { get; set; }
        public int CInvDefine12 { get; set; }
        public float CInvDefine13 { get; set; }
        public float CInvDefine14 { get; set; }

        public string indCode;        //内部图号
        public string indCodeV;       //内部图号版本
        public string cusdCode;       //客户图号
        public string cusdCodeV;      //客户图号版本
        public string materDe;        //材质
        public string letterGudeg;    //是否刻字
        public string standardGudeg;  //是否标准
        public string stopdate;       //停用日期


        //通用名称     内部图号
        public string CCurrencyName { get; set; }
        #endregion

        #region mes
        public string Owner1 { get; set; }
        /// <summary>
        /// 有效期
        /// </summary>
        public int ExpiryDate { get; set; }
        #endregion

        #region 验证字段是否可以为空
        public List<string> Validation()
        {
            List<string> vMsgList = new List<string>();

            if (Id == null)
            {
                vMsgList.Add("主键不可以为空！");
            }
            else
            {
                if (Id.ToString().Trim() == "")
                {
                    vMsgList.Add("主键不可以为空！");
                }
            }

            if (CinvCode == null)
            {
                vMsgList.Add("存货编号不可以为空！");
            }
            else
            {
                if (CinvCode.ToString().Trim() == "")
                {
                    vMsgList.Add("存货编号不可以为空！");
                }
            }

            if (CinvName == null)
            {
                vMsgList.Add("存货名称不可以为空！");
            }
            else
            {
                if (CinvName.ToString().Trim() == "")
                {
                    vMsgList.Add("存货名称不可以为空！");
                }
            }

            if (CinvCCode == null)
            {
                vMsgList.Add("从属分类不可以为空！");
            }
            else
            {
                if (CinvCCode.ToString().Trim() == "")
                {
                    vMsgList.Add("从属分类不可以为空！");
                }
            }

            if (UnitCode == null)
            {
                vMsgList.Add("计量单位不可以为空！");
            }
            else
            {
                if (UnitCode.ToString().Trim() == "")
                {
                    vMsgList.Add("计量单位不可以为空！");
                }
            }

            if (SaleFlag == null)
            {
                vMsgList.Add("销售件不可以为空！");
            }
            else
            {
                if (SaleFlag.ToString().Trim() == "")
                {
                    vMsgList.Add("销售件不可以为空！");
                }
            }

            if (SelfFlag == null)
            {
                vMsgList.Add("自制件不可以为空！");
            }
            else
            {
                if (SelfFlag.ToString().Trim() == "")
                {
                    vMsgList.Add("自制件不可以为空！");
                }
            }

            if (PoFlag == null)
            {
                vMsgList.Add("采购件不可以为空！");
            }
            else
            {
                if (PoFlag.ToString().Trim() == "")
                {
                    vMsgList.Add("采购件不可以为空！");
                }
            }

            if (OmFlag == null)
            {
                vMsgList.Add("委外件不可以为空！");
            }
            else
            {
                if (OmFlag.ToString().Trim() == "")
                {
                    vMsgList.Add("委外件不可以为空！");
                }
            }

            if (BatchFlag == null)
            {
                vMsgList.Add("批次管控不可以为空！");
            }
            else
            {
                if (BatchFlag.ToString().Trim() == "")
                {
                    vMsgList.Add("批次管控不可以为空！");
                }
            }

            if (OrgID == null)
            {
                vMsgList.Add("组织ID不可以为空！");
            }
            else
            {
                if (OrgID.ToString().Trim() == "")
                {
                    vMsgList.Add("组织ID不可以为空！");
                }
            }

            if (BarCode == null)
            {
                vMsgList.Add("部门条码值不可以为空！");
            }
            else
            {
                if (BarCode.ToString().Trim() == "")
                {
                    vMsgList.Add("部门条码值不可以为空！");
                }
            }

            if (StartFlag == null)
            {
                vMsgList.Add("启用标识（0 停用，1 启用）不可以为空！");
            }
            else
            {
                if (StartFlag.ToString().Trim() == "")
                {
                    vMsgList.Add("启用标识（0 停用，1 启用）不可以为空！");
                }
            }

            if (CUserID == null)
            {
                vMsgList.Add("创建人ID不可以为空！");
            }
            else
            {
                if (CUserID.ToString().Trim() == "")
                {
                    vMsgList.Add("创建人ID不可以为空！");
                }
            }

            if (CTime == null)
            {
                vMsgList.Add("创建时间不可以为空！");
            }
            else
            {
                if (CTime.ToString().Trim() == "")
                {
                    vMsgList.Add("创建时间不可以为空！");
                }
            }

            return vMsgList;
        }


        #endregion
    }
}